home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / C / ASAP / layer.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-09-09  |  5.6 KB  |  126 lines

  1. /*****************************************************************************
  2.  *                                                                           *
  3.  * ASAP - Amiga Software Authoring Platform                                  *
  4.  *                                                                           *
  5.  * Written by Laurie Perrin                                                  *
  6.  *                                                                           *
  7.  * ALayer wrapper class                                                      *
  8.  *                                                                           *
  9.  *****************************************************************************/
  10.  
  11. #ifndef ASAP_ALayer_H
  12. #define ASAP_ALayer_H
  13.  
  14. #include <New.h>
  15.  
  16. extern "C"
  17. {
  18.  #include <Proto/Graphics.h>
  19.  #include <Proto/Layers.h>
  20. }
  21.  
  22. class AHook;
  23.  
  24. class ALayer : public Layer
  25. {
  26.  public:
  27.  inline LONG BeginUpdate();
  28.  inline static ALayer * CreateBehindHookLayer(Layer_Info *, BitMap * bm, long x0, long y0, long x1, long y1, long flags, Hook * hook, BitMap * bm2 = 0);
  29.  inline static ALayer * CreateBehindLayer(Layer_Info *, BitMap * bm, long x0, long y0, long x1, long y1, long flags = LAYERSMART, BitMap * bm2 = 0);
  30.  inline static ALayer * CreateUpfrontHookLayer(Layer_Info *, BitMap * bm, long x0, long y0, long x1, long y1, long flags, Hook * hook, BitMap * bm2 = 0);
  31.  inline static ALayer * CreateUpfrontLayer(Layer_Info *, BitMap * bm, long x0, long y0, long x1, long y1, long flags = LAYERSMART, BitMap * bm2 = 0);
  32.  inline void * operator new(size_t, Layer_Info *, BitMap * bm, long x0, long y0, long x1, long y1, BOOL Upfront, long flags = LAYERSMART, BitMap * bm2 = 0, Hook * hook = 0);
  33.  inline LONG DeleteLayer(LONG dummy = 0);
  34.  inline void EndUpdate(unsigned long flag);
  35.  inline Region * InstallClipRegion(Region * region);
  36.  inline AHook * InstallLayerHook(Hook * hook);
  37.  inline void LockLayerRom();
  38.  inline LONG MoveLayerInFrontOf(Layer * other_layer);
  39.  inline LONG MoveSizeLayer(long dx, long dy, long dw, long dh);
  40.  inline void SortLayerCR(long dx, long dy);
  41.  inline void UnlockLayer();
  42. };
  43. //----------------------------------------------------------------------------
  44. LONG ALayer::BeginUpdate ()
  45. {
  46.  return ::BeginUpdate(this);
  47. }
  48. //----------------------------------------------------------------------------
  49. ALayer * ALayer::CreateBehindHookLayer (Layer_Info *li, BitMap * bm, long x0, long y0, long x1, long y1, long flags, Hook * hook, BitMap * bm2)
  50. {
  51.  return (ALayer *) ::CreateBehindHookLayer(li, bm, x0, y0, x1, y1, flags, hook, bm2);
  52. }
  53. //----------------------------------------------------------------------------
  54. ALayer * ALayer::CreateBehindLayer (Layer_Info *li, BitMap * bm, long x0, long y0, long x1, long y1, long flags, BitMap * bm2)
  55. {
  56.  return (ALayer *) ::CreateBehindLayer(li, bm, x0, y0, x1, y1, flags, bm2);
  57. }
  58. //----------------------------------------------------------------------------
  59. ALayer * ALayer::CreateUpfrontHookLayer (Layer_Info *li, BitMap * bm, long x0, long y0, long x1, long y1, long flags, Hook * hook, BitMap * bm2)
  60. {
  61.  return (ALayer *) ::CreateUpfrontHookLayer(li, bm, x0, y0, x1, y1, flags, hook, bm2);
  62. }
  63. //----------------------------------------------------------------------------
  64. ALayer * ALayer::CreateUpfrontLayer (Layer_Info *li, BitMap * bm, long x0, long y0, long x1, long y1, long flags, BitMap * bm2)
  65. {
  66.  return (ALayer *) ::CreateUpfrontLayer(li, bm, x0, y0, x1, y1, flags, bm2);
  67. }
  68. //----------------------------------------------------------------------------
  69. void * ALayer::operator new(size_t, Layer_Info *li, BitMap * bm, long x0, long y0, long x1, long y1, BOOL Upfront, long flags, BitMap * bm2, Hook * hook)
  70. {
  71.  return (ALayer *) Upfront? hook? ::CreateUpfrontHookLayer(li, bm, x0, y0, x1, y1, flags, hook, bm2) : ::CreateUpfrontLayer(li, bm, x0, y0, x1, y1, flags, bm2)
  72.                           : hook? ::CreateBehindHookLayer(li, bm, x0, y0, x1, y1, flags, hook, bm2) : ::CreateBehindLayer(li, bm, x0, y0, x1, y1, flags, bm2);
  73. }
  74. //----------------------------------------------------------------------------
  75. LONG ALayer::DeleteLayer(LONG dummy)
  76. {
  77.  return ::DeleteLayer(dummy, this);
  78. }
  79. //----------------------------------------------------------------------------
  80. void operator delete (void *layer)
  81. {
  82.  ((ALayer *) layer)->DeleteLayer();
  83. }
  84. //----------------------------------------------------------------------------
  85. void ALayer::EndUpdate (unsigned long flag)
  86. {
  87.  ::EndUpdate(this, flag);
  88. }
  89. //----------------------------------------------------------------------------
  90. Region * ALayer::InstallClipRegion (Region * region)
  91. {
  92.  return ::InstallClipRegion(this, region);
  93. }
  94. //----------------------------------------------------------------------------
  95. AHook * ALayer::InstallLayerHook (Hook * hook)
  96. {
  97.  return (AHook *) ::InstallLayerHook(this, hook);
  98. }
  99. //----------------------------------------------------------------------------
  100. void ALayer::LockLayerRom ()
  101. {
  102.  ::LockLayerRom(this);
  103. }
  104. //----------------------------------------------------------------------------
  105. LONG ALayer::MoveLayerInFrontOf (Layer * other_layer)
  106. {
  107.  return ::MoveLayerInFrontOf(this, other_layer);
  108. }
  109. //----------------------------------------------------------------------------
  110. LONG ALayer::MoveSizeLayer (long dx, long dy, long dw, long dh)
  111. {
  112.  return ::MoveSizeLayer(this, dx, dy, dw, dh);
  113. }
  114. //----------------------------------------------------------------------------
  115. void ALayer::SortLayerCR (long dx, long dy)
  116. {
  117.  ::SortLayerCR(this, dx, dy);
  118. }
  119. //----------------------------------------------------------------------------
  120. void ALayer::UnlockLayer ()
  121. {
  122.  ::UnlockLayer(this);
  123. }
  124.  
  125. #endif
  126.